-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create local script to replace existing local dev scripts #1295
Conversation
tomkennedy513
commented
Jul 31, 2023
- Support building with pack or ko locally
e86e705
to
09466e5
Compare
echo "Generating kbld config" | ||
temp_dir=$(mktemp -d) | ||
kbld_config_path="${temp_dir}/kbld-config" | ||
if [ $type = "ko" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any reason to support both types? Should we just use the one that is better suited here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main reason I added both was a bit of a proof of concept. Inside VMware we have some teams that use ko, but are experimenting with using buildpacks, so I was trying to show a way that you could build the same image with either ko or pack.
Which one has the best developer experience is a bit tough to answer since it depends a bit on what you're doing. Iterating locally, ko will be a bit quicker since there is no docker involved, but it is very dependent on your local environment. Building with pack will replicate our ci so as a developer you can have confidence that the changes you are working on locally will behave the same in ci.
I personally think there is room for both, but if I had to chose one I would pick pack because consistency would be more important to me than speed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The trade off is pack
is what we use to generate our actual releases (and something-something dog fooding), so you would use it to get as close as possible to the release process/candidate. On the other hand, ko
is fast, like 1 min vs 7-10 min. The difference is even greater when both are started from empty caches.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whoops, forgot that pack
deposits the built binaries at /cnb/process/<app>
, which we hard code at
kpack/pkg/apis/build/v1alpha2/build_pod.go
Line 399 in 2646bcf
Command: []string{"/cnb/process/build-init"}, |
37b22c3
to
9e6c5a3
Compare
- Support building with pack or ko locally Signed-off-by: Tom Kennedy <[email protected]>
9e6c5a3
to
998061d
Compare
- This allows us to modify the command for images built with ko because they have a different entrypoint Signed-off-by: Tom Kennedy <[email protected]>
998061d
to
a31a18b
Compare
Codecov Report
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. @@ Coverage Diff @@
## main #1295 +/- ##
=======================================
Coverage 67.41% 67.41%
=======================================
Files 133 133
Lines 8093 8093
=======================================
Hits 5456 5456
Misses 2200 2200
Partials 437 437
|